Module Manifest Examples
This page provides practical examples of how to implement the module manifest and its related files. These examples illustrate how the contract between your module and the Istari Agent works in practice.
Entrypoint
The entrypoint is the path to the executable that the agent will run. Paths must be relative to the module folder.
Example directory layouts:
your_module/
├─ module_manifest.json
├─ your_module.exe
Entrypoint: your_module.exe
your_module/
├─ module_manifest.json
└─ executables/
└─ your_module.exe
Entrypoint: executables/your_module.exe
Run Command
The run_command defines how the agent invokes your function. It may include placeholders:
| Placeholder | Value | Required? | Notes |
|---|---|---|---|
{entrypoint} | Absolute path to the entrypoint | Yes | Always required |
{function_name} | Name of the function | No | |
{input_file} | Absolute path to the input JSON file | Yes | Required |
{output_file} | Absolute path to the output JSON file | Yes | Required |
{temp_dir} | Path to a temporary working directory | Yes | Cleaned up after execution |
{module_config} | Absolute path to the module config JSON file | No | Only if additional_configuration_required: true |
Input File
The input file is a JSON object. Each key corresponds to an input defined in the Function Schema.
Example 1
{
"input_workbook": {
"type": "user_model",
"value": "C:/TEMP/16b3e166-59b4-464a-8522-195d3ee7b8c0/in/workbook_a.xlsx"
},
"cell_row": {
"type": "parameter",
"value": 15
},
"cell_column": {
"type": "parameter",
"value": "N"
}
}
Example 2
{
"input_sheet": {
"type": "user_link",
"value": "C:/TEMP/1e57365e-c3bc-4574-a08b-7c3e7563eaf2/in/presentation.istari_google_drive_metadata_presentation"
},
"api_auth": {
"type": "auth_info",
"value": "C:/TEMP/1e57365e-c3bc-4574-a08b-7c3e7563eaf2/in/gdrive_key.dat"
}
}
Output File
The output file is a JSON array of objects. Each output corresponds to an output defined in the Function Schema.
Example 1
[
{
"name": "updated_workbook",
"type": "file",
"value": "C:/TEMP/16b3e166-59b4-464a-8522-195d3ee7b8c0/out/updated.xlsx"
}
]
Example 2
[
{
"name": "primary_sheet",
"type": "file",
"value": "C:/TEMP/1e57365e-c3bc-4574-a08b-7c3e7563eaf2/out/primary_sheet.csv"
},
{
"name": "cells",
"type": "directory",
"value": "C:/TEMP/1e57365e-c3bc-4574-a08b-7c3e7563eaf2/out/cells"
},
{
"name": "summary",
"type": "file",
"value": "C:/TEMP/1e57365e-c3bc-4574-a08b-7c3e7563eaf2/out/summary.txt"
}
]
Module Config File
If additional_configuration_required: true is set, the agent generates a config JSON file containing user-supplied values.
Example 1
{
"paraview_home": "/path/to/paraview/home/"
}
Example 2
{
"cameo_home": "/path/to/cameo/installation/dir/",
"cameo_version": "2021x-refresh2",
"lmutil_executable_path": "/path/to/lmutil/executable",
"server_host": "localhost",
"port": 27000,
"license_name": "cameoenterprisearchitectureent"
}
Function Schema Examples
Inputs
"inputs": {
"input_workbook": {
"type": "user_model",
"validation_types": ["@extension:xlsx"],
"optional": false,
"display_name": "Input Workbook"
},
"cell_row": {
"type": "parameter",
"validation_types": [],
"optional": true,
"display_name": "Row of cell (optional)"
},
"cell_column": {
"type": "parameter",
"validation_types": [],
"optional": true,
"display_name": "Column of cell (optional)"
}
}
Outputs
"outputs": [
{
"name": "updated_workbook",
"type": "file",
"required": true,
"upload_as": "model",
"version_of": "input_workbook"
}
]
"outputs": [
{
"name": "primary_sheet",
"type": "file",
"required": true,
"upload_as": "model",
"display_name": "Primary Sheet - The primary sheet as a CSV file"
},
{
"name": "cells",
"type": "directory",
"required": true,
"display_name": "Cells - Each cell as a separate JSON file"
},
{
"name": "summary",
"type": "file",
"required": false,
"upload_as": "artifact",
"display_name": "Summary - Summary of sheet contents as a TXT file"
},
{
"name": "statistics",
"type": "file",
"required": false,
"display_name": "Statistics - Summary of sheet statistics as a JSON file"
}
]